标签: 语言工作台
语言工作台:领域特定语言的杀手级应用?
软件开发中的大多数新想法实际上都是旧想法的新变体。本文介绍了其中之一,即我称之为语言工作台的一类工具的兴起 - 例如 Intentional Software、JetBrains 的元编程系统和微软的软件工厂。这些工具采用了一种旧的开发风格 - 我称之为面向语言编程,并使用 IDE 工具来使面向语言编程成为一种可行的方法。虽然我不敢断言它们是否会成功实现其目标,但我确实认为这些工具是软件开发领域中最有趣的事物之一。它们有趣到足以让我写这篇文章来尝试解释,至少概述一下它们是如何工作的,以及围绕它们未来用途的主要问题。
为 DSL 生成代码
当你构建领域特定语言 (DSL) 时,你如何使其可执行。对于内部 DSL 来说,这是一个很容易回答的问题,因为它们嵌入在真实的语言中。外部 DSL 需要更多工作。在这里,我举一个简单的 DSL 示例,并展示几种从它生成代码的简单方法。
语言工作台实战 - MPS
使用语言工作台与使用传统的领域特定语言非常不同。这是一个使用 JetBrains 元编程系统 (MPS) 构建一个小型但有趣的 DSL 的示例。你可以使用它来感受使用语言工作台是什么感觉。
语言工作台和模型驱动架构
最近,允许你在多个领域特定语言 (DSL) 之间集成的工具(我称之为语言工作台)的开发激增。围绕语言工作台的许多讨论与围绕对象管理组的模型驱动架构 (MDA) 的讨论非常相似。在我看来,MDA 对不同的人意味着不同的东西 - 这影响了我们如何看待 MDA 和语言工作台之间的关系。当然,有些 MDA 从业者正在使用 MDA 的思想来构建语言工作台。然而,我认为 MDA 提供的帮助充其量只是部分的。更广泛的模型驱动开发 (MDD) 学派也呼应了许多这些想法,但没有与 MDA 标准的联系 - 这与语言工作台的思想非常一致。
SE Radio 播客:领域特定语言
我和 Thoughtworks 首席技术官 Rebecca Parsons(DSL 书籍的撰稿人之一)一起与 Markus Völter 讨论了 DSL。我们讨论了什么是 DSL、内部 DSL 和外部 DSL 之间的区别,以及何时应该(以及不应该)使用 DSL。
说明性编程
世界上最常见的编程语言是什么?
语言工作台
语言工作台是我在 2005 年创造的一个术语,用于描述一类新的软件开发工具,旨在通过一个由多个集成的 领域特定语言 组成的丰富环境来构建软件。这些工具距离成为主流还有一段距离,但对它们的开发仍在继续,并且仍然很有趣。我认为它们是少数几个可以显著改变编程格局的东西之一。
模型驱动软件开发
模型驱动软件开发 (MDSD) 是一种软件开发风格,它认为自己是传统编程风格的替代方案。该方法的核心是构建软件系统的模型。这些模型通常通过图表设计符号来体现 - UML 就是其中一种选择。其想法是使用这些图表向建模工具指定你的系统,然后用传统的编程语言生成代码。